<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Chapter 21 Where to go from here – contributing to Biopython &mdash; Biopython_en 1.0 documentation</title>
    
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '1.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="Biopython_en 1.0 documentation" href="index.html" />
    <link rel="next" title="Chapter 22 Appendix: Useful stuff about Python" href="chr22.html" />
    <link rel="prev" title="第20章 高级" href="chr20.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="chr22.html" title="Chapter 22 Appendix: Useful stuff about Python"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="chr20.html" title="第20章 高级"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">Biopython_en 1.0 documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="chapter-21-where-to-go-from-here-contributing-to-biopython">
<h1>Chapter 21  Where to go from here – contributing to Biopython<a class="headerlink" href="#chapter-21-where-to-go-from-here-contributing-to-biopython" title="Permalink to this headline">¶</a></h1>
<div class="section" id="bug-reports-feature-requests">
<h2>21.1  Bug Reports + Feature Requests<a class="headerlink" href="#bug-reports-feature-requests" title="Permalink to this headline">¶</a></h2>
<p>Getting feedback on the Biopython modules is very important to us.
Open-source projects like this benefit greatly from feedback,
bug-reports (and patches!) from a wide variety of contributors.</p>
<p>The main forums for discussing feature requests and potential bugs are
the <a class="reference external" href="http://biopython.org/wiki/Mailing_lists">Biopython mailing
lists</a>:</p>
<ul class="simple">
<li><a class="reference external" href="mailto:biopython&#37;&#52;&#48;biopython&#46;org">biopython<span>&#64;</span>biopython<span>&#46;</span>org</a> – An
unmoderated list for discussion of anything to do with Biopython.</li>
<li><a class="reference external" href="mailto:biopython-dev&#37;&#52;&#48;biopython&#46;org">biopython-dev<span>&#64;</span>biopython<span>&#46;</span>org</a>
– A more development oriented list that is mainly used by developers
(but anyone is free to contribute!).</li>
</ul>
<p>Additionally, if you think you’ve found a bug, you can submit it to our
bug-tracking page at
<tt class="docutils literal"><span class="pre">`http://redmine.open-bio.org/projects/biopython</span></tt> &lt;<a class="reference external" href="http://redmine.open-bio.org/projects/biopython">http://redmine.open-bio.org/projects/biopython</a>&gt;`__.
This way, it won’t get buried in anyone’s Inbox and forgotten about.</p>
</div>
<div class="section" id="mailing-lists-and-helping-newcomers">
<h2>21.2  Mailing lists and helping newcomers<a class="headerlink" href="#mailing-lists-and-helping-newcomers" title="Permalink to this headline">¶</a></h2>
<p>We encourage all our uses to sign up to the main Biopython mailing list.
Once you’ve got the hang of an area of Biopython, we’d encourage you to
help answer questions from beginners. After all, you were a beginner
once.</p>
</div>
<div class="section" id="contributing-documentation">
<h2>21.3  Contributing Documentation<a class="headerlink" href="#contributing-documentation" title="Permalink to this headline">¶</a></h2>
<p>We’re happy to take feedback or contributions - either via a bug-report
or on the Mailing List. While reading this tutorial, perhaps you noticed
some topics you were interested in which were missing, or not clearly
explained. There is also Biopython’s built in documentation (the
docstrings, these are also
<a class="reference external" href="http://biopython.org/DIST/docs/api">online</a>), where again, you may
be able to help fill in any blanks.</p>
</div>
<div class="section" id="contributing-cookbook-examples">
<h2>21.4  Contributing cookbook examples<a class="headerlink" href="#contributing-cookbook-examples" title="Permalink to this headline">¶</a></h2>
<p>As explained in Chapter <a class="reference external" href="#chapter:cookbook">18</a>, Biopython now has
a wiki collection of user contributed “cookbook” examples,
<tt class="docutils literal"><span class="pre">`http://biopython.org/wiki/Category:Cookbook</span></tt> &lt;<a class="reference external" href="http://biopython.org/wiki/Category:Cookbook">http://biopython.org/wiki/Category:Cookbook</a>&gt;`__
– maybe you can add to this?</p>
</div>
<div class="section" id="maintaining-a-distribution-for-a-platform">
<h2>21.5  Maintaining a distribution for a platform<a class="headerlink" href="#maintaining-a-distribution-for-a-platform" title="Permalink to this headline">¶</a></h2>
<p>We currently provide source code archives (suitable for any OS, if you
have the right build tools installed), and Windows Installers which are
just click and run. This covers all the major operating systems.</p>
<p>Most major Linux distributions have volunteers who take these source
code releases, and compile them into packages for Linux users to easily
install (taking care of dependencies etc). This is really great and we
are of course very grateful. If you would like to contribute to this
work, please find out more about how your Linux distribution handles
this.</p>
<p>Below are some tips for certain platforms to maybe get people started
with helping out:</p>
<dl class="docutils">
<dt><strong>Windows</strong></dt>
<dd><p class="first">– Windows products typically have a nice graphical installer that
installs all of the essential components in the right place. We use
Distutils to create a installer of this type fairly easily.</p>
<p>You must first make sure you have a C compiler on your Windows
computer, and that you can compile and install things (this is the
hard bit - see the Biopython installation instructions for info on
how to do this).</p>
<p>Once you are setup with a C compiler, making the installer just
requires doing:</p>
<p class="last">Now you’ve got a Windows installer. Congrats! At the moment we have
no trouble shipping installers built on 32 bit windows. If anyone
would like to look into supporting 64 bit Windows that would be
great.</p>
</dd>
<dt><strong>RPMs</strong></dt>
<dd><p class="first">– RPMs are pretty popular package systems on some Linux platforms.
There is lots of documentation on RPMs available at
<tt class="docutils literal"><span class="pre">`http://www.rpm.org</span></tt> &lt;<a class="reference external" href="http://www.rpm.org">http://www.rpm.org</a>&gt;`__ to help you get
started with them. To create an RPM for your platform is really
easy. You just need to be able to build the package from source
(having a C compiler that works is thus essential) – see the
Biopython installation instructions for more info on this.</p>
<p>To make the RPM, you just need to do:</p>
<p class="last">This will create an RPM for your specific platform and a source RPM
in the directory <tt class="docutils literal"><span class="pre">dist</span></tt>. This RPM should be good and ready to go,
so this is all you need to do! Nice and easy.</p>
</dd>
<dt><strong>Macintosh</strong></dt>
<dd>– Since Apple moved to Mac OS X, things have become much easier on
the Mac. We generally treat it as just another Unix variant, and
installing Biopython from source is just as easy as on Linux. The
easiest way to get all the GCC compilers etc installed is to install
Apple’s X-Code. We might be able to provide click and run installers
for Mac OS X, but to date there hasn’t been any demand.</dd>
</dl>
<p>Once you’ve got a package, please test it on your system to make sure it
installs everything in a good way and seems to work properly. Once you
feel good about it, send it off to one of the Biopython developers
(write to our main mailing list at <a class="reference external" href="mailto:biopython&#37;&#52;&#48;biopython&#46;org">biopython<span>&#64;</span>biopython<span>&#46;</span>org</a> if you’re not
sure who to send it to) and you’ve done it. Thanks!</p>
</div>
<div class="section" id="contributing-unit-tests">
<h2>21.6  Contributing Unit Tests<a class="headerlink" href="#contributing-unit-tests" title="Permalink to this headline">¶</a></h2>
<p>Even if you don’t have any new functionality to add to Biopython, but
you want to write some code, please consider extending our unit test
coverage. We’ve devoted all of Chapter <a class="reference external" href="#sec:regr_test">19</a> to this
topic.</p>
</div>
<div class="section" id="contributing-code">
<h2>21.7  Contributing Code<a class="headerlink" href="#contributing-code" title="Permalink to this headline">¶</a></h2>
<p>There are no barriers to joining Biopython code development other than
an interest in creating biology-related code in Python. The best place
to express an interest is on the Biopython mailing lists – just let us
know you are interested in coding and what kind of stuff you want to
work on. Normally, we try to have some discussion on modules before
coding them, since that helps generate good ideas – then just feel free
to jump right in and start coding!</p>
<p>The main Biopython release tries to be fairly uniform and interworkable,
to make it easier for users. You can read about some of (fairly
informal) coding style guidelines we try to use in Biopython in the
contributing documentation at
<tt class="docutils literal"><span class="pre">`http://biopython.org/wiki/Contributing</span></tt> &lt;<a class="reference external" href="http://biopython.org/wiki/Contributing">http://biopython.org/wiki/Contributing</a>&gt;`__.
We also try to add code to the distribution along with tests (see
Chapter <a class="reference external" href="#sec:regr_test">19</a> for more info on the regression
testing framework) and documentation, so that everything can stay as
workable and well documented as possible (including docstrings). This
is, of course, the most ideal situation, under many situations you’ll be
able to find other people on the list who will be willing to help add
documentation or more tests for your code once you make it available.
So, to end this paragraph like the last, feel free to start working!</p>
<p>Please note that to make a code contribution you must have the legal
right to contribute it and license it under the Biopython license. If
you wrote it all yourself, and it is not based on any other code, this
shouldn’t be a problem. However, there are issues if you want to
contribute a derivative work - for example something based on GPL or
LPGL licenced code would not be compatible with our license. If you have
any queries on this, please discuss the issue on the biopython-dev
mailing list.</p>
<p>Another point of concern for any additions to Biopython regards any
build time or run time dependencies. Generally speaking, writing code to
interact with a standalone tool (like BLAST, EMBOSS or ClustalW) doesn’t
present a big problem. However, any dependency on another library - even
a Python library (especially one needed in order to compile and install
Biopython like NumPy) would need further discussion.</p>
<p>Additionally, if you have code that you don’t think fits in the
distribution, but that you want to make available, we maintain Script
Central
(<tt class="docutils literal"><span class="pre">`http://biopython.org/wiki/Scriptcentral</span></tt> &lt;<a class="reference external" href="http://biopython.org/wiki/Scriptcentral">http://biopython.org/wiki/Scriptcentral</a>&gt;`__)
which has pointers to freely available code in Python for
bioinformatics.</p>
<p>Hopefully this documentation has got you excited enough about Biopython
to try it out (and most importantly, contribute!). Thanks for reading
all the way through!</p>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Chapter 21  Where to go from here – contributing to Biopython</a><ul>
<li><a class="reference internal" href="#bug-reports-feature-requests">21.1  Bug Reports + Feature Requests</a></li>
<li><a class="reference internal" href="#mailing-lists-and-helping-newcomers">21.2  Mailing lists and helping newcomers</a></li>
<li><a class="reference internal" href="#contributing-documentation">21.3  Contributing Documentation</a></li>
<li><a class="reference internal" href="#contributing-cookbook-examples">21.4  Contributing cookbook examples</a></li>
<li><a class="reference internal" href="#maintaining-a-distribution-for-a-platform">21.5  Maintaining a distribution for a platform</a></li>
<li><a class="reference internal" href="#contributing-unit-tests">21.6  Contributing Unit Tests</a></li>
<li><a class="reference internal" href="#contributing-code">21.7  Contributing Code</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="chr20.html"
                        title="previous chapter">第20章 高级</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="chr22.html"
                        title="next chapter">Chapter 22  Appendix: Useful stuff about Python</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/chr21.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="chr22.html" title="Chapter 22 Appendix: Useful stuff about Python"
             >next</a> |</li>
        <li class="right" >
          <a href="chr20.html" title="第20章 高级"
             >previous</a> |</li>
        <li><a href="index.html">Biopython_en 1.0 documentation</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2013, Biopython.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b1.
    </div>
  </body>
</html>